import os
from wsgiref.simple_server import make_server


# 建立http请求到来执行的函数,app(环境,)
def app(env, make_response):
    # 处理业务最核心的函数
    # 获取请求的环境变量
    # for k,v in env.items():
    #     print(k,':',v)

    # 获取请求资源路径
    path = env.get('PATH_INFO')
    # 响应头,根据响应的数据增加不同的响应头k:v
    headers = []
    # 响应的数据
    body = []

    # 设置静态资源目录
    static_dir = 'jq'
    if path == '/favico.ico' :
        res_path = os.path.join(static_dir,'image/1.jpg')
        headers.append(('content-type','image/*'))
    elif path == '/':
        # 主页
        res_path = os.path.join(static_dir,'JS/js02双色球升级版.html')
        headers.append(('content-type','text/html;charset=utf-8'))
    else:
        # 其他资源:css/js/图片/mp4/mp3
        # 'abcde'.path[1:] 切割，取第一个字符后面的所有字符串 bcde
        res_path = os.path.join(static_dir,path[1:])
        # 判断后缀
        if res_path.endswith('.html'):
            headers.append(('content-type', 'text/html;charset=utf-8'))
        # any(元祖) 里面只要一个为真 any就为真
        elif any((res_path.endswith('.png'),
                 res_path.endswith('.jpg'),
                 res_path.endswith('.gif'))):
            headers.append(('content-type', 'image/*;charset=utf-8'))
        else:
            # JS/CSS
            headers.append(('content-type','text/*;charset=utf-8'))

    # 1.
    status_code = 200
    # 判断资源是否存在 res_path
    if not os.path.exists(res_path):
        status_code = 404
        body.append('<h4 style="color:red">请求的资源不存在:404<h4>'.encode('utf-8'))
    else:
        with open(res_path,'rb') as steam:
            body.append(steam.read())

    make_response('%s OK' % status_code,headers)
    return body

host = '0.0.0.0'
port = 8000

# 生成WEB应用服务进程
# 建立静态服务器  make_server('默认localhost',端口,业务要执行的东西)
httpd = make_server(host, port, app)
print('running http://%s:%s' % (host,port))

# 启动进程，开始监听客户端连接  .serve_forever(轮询间隔默认0.5秒，)
httpd.serve_forever()